package com.nave.segundaguerra.servidorecliente.util;



import android.util.Log;

public class ControleDeUsuariosPortScan implements DataHandler {

	
	String name;
	private final boolean serverCheio = false;
	ProcuraServers procura;
	
	public ControleDeUsuariosPortScan(ProcuraServers procura){
		this.procura = procura;
	}
	
	public ControleDeUsuariosPortScan(String nameServer){
		this.name = nameServer;
	}
	
	@Override
	public void execute(Connection origem, String linha) {
		
		Log.i(Const.TAG, "<<" + linha);

		if (linha.startsWith(Protocolo.CLIENT_REQUEST)){
			respostaCliente(origem);
		}

		if (linha.startsWith(Protocolo.SERVER_DELIVERY)){
			entregaServer(origem, linha);
		}
		
	}
	
	
	public void respostaCliente(Connection origem){
		if(serverCheio){
			origem.Send(Protocolo.SERVER_DELIVERY +","+ "1"+","+name);
		}else{
			origem.Send(Protocolo.SERVER_DELIVERY +","+ "0"+","+name);
		}
	}
	
	public void entregaServer(Connection origem, String linha){
		
//		procura.encontrouIP(origem.getIP(), "ServerQualquer", "10/15");
//		origem.killMeSoftly();
		
		String[] array = linha.split(",");
		if(Integer.parseInt(array[1]) == 1){
			Log.i("PortScan", "ServerCheio");
			origem.killMeSoftly();
		}else if( Integer.parseInt(array[1]) == 0){
			Log.i("PortScan", "Server Vazio");
			if(procura != null){
				procura.encontrouIP(origem.getIP(), array[2], "10/15");
				origem.killMeSoftly();
			}
		}
	}
	
	public void setServerCheio(boolean podeEntrar){
		//this.serverCheio = podeEntrar;
	}

	

}
